// 使用数学公式实现1到n的累加（更高效）
const sumFrom1ToN = (n) => {
  return n * (n + 1) / 2;
};

/**
 * @param {string} s
 * @return {number}
 */
var numSub = function (s) {
  if (!s || s.length === 0) return 0;
  if (!s.includes("1")) {
    return 0;
  }
  let result = 0;
  let flag = false;
  let i = 0;
  let j = 0;
  for (; i < s.length; i++) {
    if (!flag &&s[i] === "1") {
      j = i;
      flag = true;
    }
    if (flag && s[i] === "0") {
      result += sumFrom1ToN(i - j);
      flag = false;
    }
  }
  if (flag) {
    result += sumFrom1ToN(s.length - j);
  }
  return result % (10 ** 9 + 7);
};